function format(v) {
  // /\d 表示 0到9 的数字 {1，3} 匹配1 或 3个数字 优先 3个数字
  // (?=(\d{3}) 优先这个表达式 表示 3个一组 从后往前匹配   /\d{1,3} 这个表达式
  const reg = /\d{1,3}(?=(\d{3})+$)/g
  // $& 匹配 当前 reg 匹配到的数字  后面加个逗号
  return `${v}`.replace(reg, '$&,')
}

function wrapperArray(o, k) {
  return o && o[k] ? o[k] : []
}

function wrapperMoney(o, k) {
  return o && o[k] ? `¥ ${format(o[k])}` : '¥ 0.00'
}
function wrapperOriginalNumber(o, k) {
  return o && o[k] ? o[k] : 0
}
function wrapperNumber(o, k) {
  return o && o[k] ? format(o[k]) : 0
}
function wrapperObject(o, k) {
  if (o && k.indexOf('.') >= 0) {
    const keys = k.split('.')
    keys.forEach(key => {
      o = o[key]
    })
    return o
  } else {
    return o && o[k] ? o[k] : {}
  }
}

function wrapperPercentage(o, k) {
  return o && o[k] ? `${o[k]}%` : '0%'
}
export default {
  inject: ['getScatterDate', 'getScreenData', 'getWordcloudData'],
  methods: {
    format(v) {
      return format(v)
    }
  },
  computed: {
    screenData() {
      return this.getScreenData()
    },

    // -------------- top ---------------
    // top 累计销售额
    selesToday() {
      return wrapperMoney(this.screenData, 'salesToday')
      // return this.screenData && this.screenData.salesToday
    },
    // 日同比
    salesGrowthLastDay() {
      return wrapperPercentage(this.screenData, 'salesGrowthLastDay')
      // return this.screenData && `${this.screenData.salesGrowthLastDay}%`
    },
    // 日月同比
    salesGrowthLastMonth() {
      return wrapperPercentage(this.screenData, 'salesGrowthLastMonth')
      // return this.screenData && `${this.screenData.salesGrowthLastMonth}%`
    },
    // 累计订单量
    orderToday() {
      return wrapperNumber(this.screenData, 'orderToday')
      // return this.screenData && this.screenData.orderToday
    },
    // 昨日订单量
    orderLastDay() {
      return wrapperNumber(this.screenData, 'orderLastDay')
      // return this.screenData && this.screenData.orderLastDay
    },
    // order 图标
    orderTrend() {
      return wrapperArray(this.screenData, 'orderTrend')
      // return this.screenData && this.screenData.orderTrend
    },
    // 昨日销售额
    salesLastDay() {
      return wrapperMoney(this.screenData, 'salesLastDay')
      // return this.screenData && `￥${this.screenData.salesLastDay}`
    },
    // 今日交易用户数
    orderUser() {
      return wrapperNumber(this.screenData, 'orderUser')
    },
    // 退货率
    returnRate() {
      return wrapperPercentage(this.screenData, 'returnRate')
    },
    // 今日交易用户数 图表
    orderUserTrend() {
      return wrapperArray(this.screenData, 'orderUserTrend')
    },
    orderUserTrendAxis() {
      return wrapperArray(this.screenData, 'orderUserTrendAxis')
    },
    // 累计用户数
    userToday() {
      return wrapperNumber(this.screenData, 'userToday')
    },
    userTodayNumber() {
      return wrapperOriginalNumber(this.screenData, 'userToday')
    },
    userLastMonth() {
      return wrapperOriginalNumber(this.screenData, 'userLastMonth')
    },
    // 日同比
    userGrowthLastDay() {
      return wrapperNumber(this.screenData, 'userGrowthLastDay')
    },
    // 月同比
    userGrowthLastMonth() {
      return wrapperNumber(this.screenData, 'userGrowthLastMonth')
    },
    // -------------- top end---------------
    // 销售额
    orderFullYear() {
      return wrapperArray(this.screenData, 'orderFullYear')
    },
    orderFullYearAxis() {
      return wrapperArray(this.screenData, 'orderFullYearAxis')
    },
    orderRank() {
      return wrapperArray(this.screenData, 'orderRank')
    },
    // 访问量
    userFullYear() {
      return wrapperArray(this.screenData, 'userFullYear')
    },
    userFullYearAxis() {
      return wrapperArray(this.screenData, 'userFullYearAxis')
    },
    userRank() {
      return wrapperArray(this.screenData, 'userRank')
    },

    // --------------- bottom ---------------
    wordCloud() {
      return this.getWordcloudData()
    },
    category1() {
      return wrapperObject(this.screenData, 'category.data1')
    },
    category2() {
      return wrapperObject(this.screenData, 'category.data2')
    },
    // --------------- bottom end ---------------
    mapData() {
      return this.getScatterDate()
    }

    // wordcloudData() {
    //   return this.getWordcloudData()
    // }
  }
}
